package br.com.cfccultura.admin.control.utils;

import javax.mail.internet.MimeMessage;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Repository;

import br.com.cfccultura.admin.model.vo.Funcionario;

@Repository
public class MailService {
	
	@Autowired
	private JavaMailSenderImpl mailSender;
	
	@Value("${email.from}")
	private String from;
	
	private void send(String to, String subject, String htmlBody) throws Exception {
		
		MimeMessage m = mailSender.createMimeMessage();
		MimeMessageHelper helper = new MimeMessageHelper(m, true);
		helper.setFrom(getFrom());
		helper.setTo(to);
		helper.setSubject(subject);
		helper.setText(htmlBody, true);
				
		mailSender.send(m);
	}
	
	public void enviaEmailSenhaUsuario(Funcionario usuario) {
		StringBuilder html = new StringBuilder();
		html.append("<b>Sistema de Cadastro de Nota Fiscal Paulista</b><p>");
		html.append("Prezado(a) <b>" + usuario.getNome() + "</b>,<p>");
		html.append("Você está recebendo os dados para acesso ao sistema.<p>");
		
		html.append("Site: <a href=\"www.socialline.com.br/pnfp\">www.socialline.com.br/pnfp</a> <br>");
		html.append("Usuário: " + usuario.getLogin() + "<br>");
		html.append("Senha: " + usuario.getSenha() + "<br><br>");
		
		html.append("Por medidas de segurança, é recomendável que a senha seja trocada no primeiro acesso.<br>");
		html.append("Para trocar a senha, posicione o cursor do mouse em cima do nome do usuário no canto direito da barra inferior.<br><br>");
		
		html.append("Qualquer dúvida entrar em contato com a administração.<p>");
		
		html.append("Atenciosamente.<p>");
		html.append("CFC Cultura");
		
		try {
			send(usuario.getEmail(), "Dados para acesso ao sistema", html.toString());
		} catch(Exception e) {
			throw new RuntimeException(e);
		}
	}
	
	public String getFrom() {
		return from;
	}
	public void setFrom(String from) {
		this.from = from;
	}

}
